package algorithm_demo.demo05;

import java.util.Stack;

/**
 * @author Api
 * @date 2023/3/5 10:10
 */
public class Code03_ReverseStackUsingRecursive {
    /*
    * 给你一个栈，请你逆序这个栈，不能申请额外的数据结构，只能使用递归函数，如何实现
    * */


    public static void reverse(Stack<Integer> stack){
        if (stack.isEmpty()){
            return;
        }
        int i = func(stack);
        reverse(stack);
        stack.push(i);
    }


    public static int func(Stack<Integer> stack){
        int result = stack.pop();
        if (stack.isEmpty()){
            return result;
        }else{
            int last = func(stack);
            stack.push(result);
            return last;
        }
    }
}
